package cn.edu.scau.cmi.liangzaoqing.client;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

import cn.edu.scau.cmi.liangzaoqing.hibernate.domain.Major;

public class HibernateClient4HibernateSession {

	/*
	 * 使用Hibernate框架，直接使用session的save方法可以保存实体对象 session的基本使用过程： 
	 * (1)获取HibernateSessionFactory； 
	 * (2) 从HibernateSessionFactory对象中获取session对象； 
	 * (3) 如果是需要更新数据库，开启session的事务； 
	 * (4) 使用session的CRUD方法完成数据库的表与应用中的对象的转换；
	 * (5) 事务的提交；
	 * (6) session的关闭
	 * 
	 * 业务方法是main，业务类变得更简洁
	 */

	public static void main(String[] args) {
		Major major = new Major();
		major.setName("信息管理");
		major.setId(4L);

		newMajor(major);
	}

	public static void newMajor(Major major) {
		SessionFactory sf = new Configuration().configure().buildSessionFactory();
		Session session = sf.openSession();
		Transaction transaction = session.beginTransaction();
//	 	直接使用Hibernate的CRUD功能		
		session.save(major);
		transaction.commit();
		session.close();
	}
}